package edu.nf.dbutil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @author yang
 * @date 2024-05-08
 */
public class ConnUtils {
    /**
     * JDBC驱动类名
     * mysql8.0版本为 "com.mysql.cj.jdbc.Driver"
     * 之前的版本通常用 "com.mysql.jdbc.Driver"
     */
    private static String driver = "com.mysql.cj.jdbc.Driver";
    /**
     * 数据库连接地址
     */
    private static String url = "jdbc:mysql://127.0.0.1:3306/jdbc_test?useUnicode=true;characterEncoding=utf8;serverTimezone=Asia/Shanghai";
    /**
     * 连接数据库账号
     */
    private static String user = "root";
    /**
     * 连接数据库密码
     */
    private static String password = "ysh@990123";

    /**
     * Java静态初始化块，当Java类被首次主动使用时，静态块会被执行，且只执行一次
     * Class.forName()方法尝试加载由 driver 变量指定的数据库驱动程序类
     */
    static{
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 获取连接对象的方法
     * @return
     * 通过 DriverManager.getConnection(String url, String user, String password)方法连接到数据库
     */
    public static Connection getConnection(){
        try {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

}
